home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / networking / ip / ka9q / aztecnos.arc / SOCKET.H < prev    next >
Encoding:
C/C++ Source or Header  |  1989-02-19  |  3.5 KB  |  124 lines

  1. #ifndef    SOCK_STREAM
  2.  
  3. #include "global.h"
  4.  
  5. /* IP protocol numbers */
  6. #define    IPPROTO_ICMP    1
  7. #define    IPPROTO_TCP    6
  8. #define    IPPROTO_UDP    17
  9.  
  10. /* TCP port numbers */
  11. #define    IPPORT_ECHO    7    /* Echo data port */
  12. #define    IPPORT_DISCARD    9    /* Discard data port */
  13. #define    IPPORT_FTPD    20    /* FTP Data port */
  14. #define    IPPORT_FTP    21    /* FTP Control port */
  15. #define IPPORT_TELNET    23    /* Telnet port */
  16. #define IPPORT_SMTP    25    /* Mail port */
  17. #define    IPPORT_FINGER    79    /* Finger port */
  18.  
  19. /* UDP port numbers */
  20. #define    IPPORT_DOMAIN    53
  21. #define    IPPORT_REMOTE    1234    /* Pulled out of the air */
  22.  
  23. #define    AF_INET    0
  24. #define    AF_AX25    1
  25.  
  26. #define    SOCK_STREAM    0
  27. #define    SOCK_DGRAM    1
  28. #define    SOCK_RAW    2
  29.  
  30. #define    EMFILE    1
  31. #define    EBADF    2
  32. #define    EINVAL    3
  33. #define    ESOCKTNOSUPPORT    4
  34. #define    EAFNOSUPPORT    5
  35. #define    EOPNOTSUPP    6
  36. #define    EFAULT        7
  37. #define    ENOTCONN    8
  38. #define    ECONNREFUSED    9
  39. #define EAFNOSUPP    10
  40. #define    EISCONN        11
  41. #define    EWOULDBLOCK    12
  42. #define    EINTR        13
  43. #define    EADDRINUSE    14
  44. #define    ENOMEM        15
  45.  
  46. /* Berkeley format socket address structures. These things were rather
  47.  * poorly thought out, but compatibility is important (or so they say)
  48.  */
  49.  
  50. /* Generic socket address structure */
  51. struct sockaddr {
  52.     short sa_family;
  53.     char sa_data[14];
  54. };
  55.  
  56. /* This is a structure for "historical" reasons (whatever they are) */
  57. struct in_addr {
  58.     unsigned long s_addr;
  59. };
  60.  
  61. /* Socket address, DARPA Internet style */
  62. struct sockaddr_in {
  63.     short sin_family;
  64.     unsigned short sin_port;
  65.     struct in_addr sin_addr;
  66.     char sin_zero[8];
  67. };
  68.  
  69. #define    ALEN        6    /* Number of chars in callsign field */
  70. #define    ILEN        7    /* Number of chars in interface field */
  71.  
  72. /* Socket address, AX.25 style */
  73. struct sockaddr_ax {
  74.     short sax_family;        /* 2 bytes */
  75.     struct {
  76.         char call[ALEN];
  77.         char ssid;
  78.     } ax25_addr;
  79.     char iface[ILEN];        /* Interface name */
  80. };
  81. #define    SOCKSIZE    (sizeof(struct sockaddr))
  82.  
  83. extern int32 Ip_addr;
  84. #if    defined(__STDC__) || defined(__TURBOC__)
  85. int32 aton(char *s);
  86. int32 resolve(char *host);
  87. int socket(int af,int type,int protocol);
  88. int bind(int s,char *name,int namelen);
  89. int listen(int s,int backlog);
  90. int connect(int s,char *peername,int peernamelen);
  91. int accept(int s,char *peername,int *peernamelen);
  92. int recv_mbuf(int s,struct mbuf **bpp,int len,int flags,char *from,int *fromlen);
  93. int send_mbuf(int s,struct mbuf *bp,int flags,char *to,int tolen);
  94. int recv(int s,char *buf,int len,int flags);
  95. int recvfrom(int s,char *buf,int len,int flags,char *from,int *fromlen);
  96. int send(int s,char *buf,int len,int flags);
  97. int sendto(int s,char *buf,int len,int flags,char *to,int tolen);
  98. int getsockname(int s,char *name,int *namelen);
  99. int getpeername(int s,char *peername,int *peernamelen);
  100. int socklen(int s,int rtx);
  101. int sockkick(int s);
  102. int shutdown(int s,int how);
  103. int close_s(int s);
  104. int recvline(int s,char *buf,unsigned len);
  105. int usprintf(int s,char *fmt,...);
  106. int recvchar(int s,struct mbuf **bpp);
  107. char *inet_ntoa(int32 a);
  108. char *psocket(struct sockaddr *s);
  109. char *sockerr(int s);
  110. char *sockstate(int s);
  111. struct proc *sockowner(int s,struct proc *newowner);
  112. void freesock(struct proc *pp);
  113. #else
  114. int32 aton(),resolve();
  115. int socket(),bind(),listen(),connect(),accept(),recv_mbuf(),send_mbuf();
  116. int recv(),recvfrom(),send(),sendto(),getsockname(),getpeername(),socklen();
  117. int sockkick(),shutdown(),close_s(),recvline(),usprintf(),recvchar();
  118. char *inet_ntoa(),*psocket(),*sockerr(),*sockstate();
  119. struct proc *sockowner();
  120. void freesock();
  121. #endif
  122.  
  123. #endif    /* SOCK_STREAM */
  124.